/*          FILE: symbol-table.h
 *      Language: C
 *        Author: <Qiwei Feng> <Pufan He> <Yichao Zhou>
 *       Created: 2012-02-27
 * Last Modified: 2012-03-01
 *   Description:
 *       License: GNU GPL v3
 */

#ifndef __C_H_SYMBOL_TABLE
#define __C_H_SYMBOL_TABLE

#include <common.h>

#define IDENTITY_CHARACTER_TOTAL 63;

#define IDENTITY_CHARACTER_LEADING_TOTAL 53;

#define IDENTITY_CHARACTER \
        "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

typedef struct symbol_entry_t {
        char *name;
        int value;
} symbol_entry_t;


symbol_entry_t *find_symbol_entry(char *identity_name);

/* add_identifier: Add new entry to symbol table.
 * Description: Get the new entry value.
 */
error_t add_identifier(char *identity_name, int *buffer);

/* find_identifier: Consult identifier in symbol table.
 * Description: Get the entry value.
 */
error_t find_identifier(char *identity_name, int *buffer);

/* delete_symbol_entry: Delete entry in symbol table.
 * Description: 
 */
error_t delete_symbol_entry(int entry_value);


#endif


/* vim: set syn=c ts=8 sts=8 sw=8 tw=79 ff=unix et : */
